How to fix Windows R warning message In strsplit input string 1 is invalid in this locale

最近用Rstudio老是遇到弹出如下警告信息,stackoverflow看了不少,说是关于本地化方面的问题

# Warning message:
# In strsplit(code, "\n", fixed = TRUE) :
#   input string 1 is invalid in this locale

临时解决措施

1. 查看sessionInfo()

发现locale是中文的,把locale设置成英文

sessionInfo()
# R version 3.3.3 (2017-03-06)
# Platform: i386-w64-mingw32/i386 (32-bit)
# Running under: Windows 10 (build 10586)
# 
# locale:
# [1] LC_COLLATE=Chinese (Simplified)_China.936
# [2] LC_CTYPE=Chinese (Simplified)_China.936
# [3] LC_MONETARY=Chinese (Simplified)_China.936
# [4] LC_NUMERIC=C
# [5] LC_TIME=Chinese (Simplified)_China.936
# 
# attached base packages:
# [1] stats     graphics  grDevices utils     datasets  methods   base

Sys.getlocale()获得本地化设置

Sys.getlocale()
# [1] "LC_COLLATE=Chinese (Simplified)_China.936;LC_CTYPE=Chinese (Simplified)_China.936;LC_MONETARY=Chinese (Simplified)_China.936;LC_NUMERIC=C;LC_TIME=Chinese (Simplified)_China.936"

2. 用Sys.setlocale把locale设置成英文

Sys.setlocale把locale设置成英文并再次Sys.getlocale验证–For Windows

Sys.setlocale("LC_ALL", "English")
# or use Sys.setlocale("LC_TIME", "English")
#[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"

Sys.getlocale()
#[1] "LC_COLLATE=English_United States.1252;LC_CTYPE=English_United States.1252;LC_MONETARY=English_United States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252"

3. Summary

For Windows to fix Warning message In strsplit(code, “”, fixed = TRUE) : input string 1 is invalid in this locale

Sys.setlocale("LC_ALL", "English")
# Sys.setlocale("LC_TIME", "English")
LS0tDQp0aXRsZTogIkhvdyB0byBmaXggV2luZG93cyBSIHdhcm5pbmcgbWVzc2FnZSAgSW4gc3Ryc3BsaXQgaW5wdXQgc3RyaW5nIDEgaXMgaW52YWxpZCBpbiB0aGlzIGxvY2FsZSINCmF1dGhvcjogIlN0b25lX0hvdSINCmRhdGU6ICIyMDE35bm0N+aciDE25pelIg0Kb3V0cHV0Og0KICBodG1sX25vdGVib29rOg0KICAgIHRoZW1lOiByZWFkYWJsZQ0KICAgIHRvYzogeWVzDQogICAgdG9jX2RlcHRoOiA0DQotLS0NCg0KIyBIb3cgdG8gZml4IFdpbmRvd3MgUiB3YXJuaW5nIG1lc3NhZ2UgIEluIHN0cnNwbGl0IGlucHV0IHN0cmluZyAxIGlzIGludmFsaWQgaW4gdGhpcyBsb2NhbGUNCg0K5pyA6L+R55SoUnN0dWRpb+iAgeaYr+mBh+WIsOW8ueWHuuWmguS4i+itpuWRiuS/oeaBr++8jHN0YWNrb3ZlcmZsb3fnnIvkuobkuI3lsJEs6K+05piv5YWz5LqO5pys5Zyw5YyW5pa56Z2i55qE6Zeu6aKYDQpgYGB7ciBXYXJuaW5nIG1lc3NhZ2V9DQojIFdhcm5pbmcgbWVzc2FnZToNCiMgSW4gc3Ryc3BsaXQoY29kZSwgIlxuIiwgZml4ZWQgPSBUUlVFKSA6DQojICAgaW5wdXQgc3RyaW5nIDEgaXMgaW52YWxpZCBpbiB0aGlzIGxvY2FsZQ0KYGBgDQoNCiMjIOS4tOaXtuino+WGs+aOquaWvQ0KDQojIyMgMS4g5p+l55yLc2Vzc2lvbkluZm/vvIjvvIkNCg0K5Y+R546wbG9jYWxl5piv5Lit5paH55qE77yM5oqKbG9jYWxl6K6+572u5oiQ6Iux5paHDQpgYGB7ciBzZXNzaW9uSW5mb30NCnNlc3Npb25JbmZvKCkNCiMgUiB2ZXJzaW9uIDMuMy4zICgyMDE3LTAzLTA2KQ0KIyBQbGF0Zm9ybTogaTM4Ni13NjQtbWluZ3czMi9pMzg2ICgzMi1iaXQpDQojIFJ1bm5pbmcgdW5kZXI6IFdpbmRvd3MgMTAgKGJ1aWxkIDEwNTg2KQ0KIyANCiMgbG9jYWxlOg0KIyBbMV0gTENfQ09MTEFURT1DaGluZXNlIChTaW1wbGlmaWVkKV9DaGluYS45MzYNCiMgWzJdIExDX0NUWVBFPUNoaW5lc2UgKFNpbXBsaWZpZWQpX0NoaW5hLjkzNg0KIyBbM10gTENfTU9ORVRBUlk9Q2hpbmVzZSAoU2ltcGxpZmllZClfQ2hpbmEuOTM2DQojIFs0XSBMQ19OVU1FUklDPUMNCiMgWzVdIExDX1RJTUU9Q2hpbmVzZSAoU2ltcGxpZmllZClfQ2hpbmEuOTM2DQojIA0KIyBhdHRhY2hlZCBiYXNlIHBhY2thZ2VzOg0KIyBbMV0gc3RhdHMgICAgIGdyYXBoaWNzICBnckRldmljZXMgdXRpbHMgICAgIGRhdGFzZXRzICBtZXRob2RzICAgYmFzZQ0KYGBgDQoNCiMjIyBTeXMuZ2V0bG9jYWxlKCnojrflvpfmnKzlnLDljJborr7nva4NCmBgYHtyIFN5cy5nZXRsb2NhbGV9DQpTeXMuZ2V0bG9jYWxlKCkNCiMgWzFdICJMQ19DT0xMQVRFPUNoaW5lc2UgKFNpbXBsaWZpZWQpX0NoaW5hLjkzNjtMQ19DVFlQRT1DaGluZXNlIChTaW1wbGlmaWVkKV9DaGluYS45MzY7TENfTU9ORVRBUlk9Q2hpbmVzZSAoU2ltcGxpZmllZClfQ2hpbmEuOTM2O0xDX05VTUVSSUM9QztMQ19USU1FPUNoaW5lc2UgKFNpbXBsaWZpZWQpX0NoaW5hLjkzNiINCmBgYA0KDQojIyMgMi4g55SoU3lzLnNldGxvY2FsZeaKimxvY2FsZeiuvue9ruaIkOiLseaWhw0KDQpTeXMuc2V0bG9jYWxl5oqKbG9jYWxl6K6+572u5oiQ6Iux5paH5bm25YaN5qyhU3lzLmdldGxvY2FsZemqjOivgS0tRm9yIFdpbmRvd3MNCg0KYGBge3IgU3lzLnNldGxvY2FsZX0NClN5cy5zZXRsb2NhbGUoIkxDX0FMTCIsICJFbmdsaXNoIikNCiMgb3IgdXNlIFN5cy5zZXRsb2NhbGUoIkxDX1RJTUUiLCAiRW5nbGlzaCIpDQojWzFdICJMQ19DT0xMQVRFPUVuZ2xpc2hfVW5pdGVkIFN0YXRlcy4xMjUyO0xDX0NUWVBFPUVuZ2xpc2hfVW5pdGVkIFN0YXRlcy4xMjUyO0xDX01PTkVUQVJZPUVuZ2xpc2hfVW5pdGVkIFN0YXRlcy4xMjUyO0xDX05VTUVSSUM9QztMQ19USU1FPUVuZ2xpc2hfVW5pdGVkIFN0YXRlcy4xMjUyIg0KDQpTeXMuZ2V0bG9jYWxlKCkNCiNbMV0gIkxDX0NPTExBVEU9RW5nbGlzaF9Vbml0ZWQgU3RhdGVzLjEyNTI7TENfQ1RZUEU9RW5nbGlzaF9Vbml0ZWQgU3RhdGVzLjEyNTI7TENfTU9ORVRBUlk9RW5nbGlzaF9Vbml0ZWQgU3RhdGVzLjEyNTI7TENfTlVNRVJJQz1DO0xDX1RJTUU9RW5nbGlzaF9Vbml0ZWQgU3RhdGVzLjEyNTIiDQpgYGANCg0KIyMjIDMuIFN1bW1hcnkNCg0KRm9yIFdpbmRvd3MgdG8gZml4IFdhcm5pbmcgbWVzc2FnZSAgSW4gc3Ryc3BsaXQoY29kZSwgIlxuIiwgZml4ZWQgPSBUUlVFKSA6ICBpbnB1dCBzdHJpbmcgMSBpcyBpbnZhbGlkIGluIHRoaXMgbG9jYWxlDQpgYGB7ciBTeXMuc2V0bG9jYWxlIGV4Mn0NClN5cy5zZXRsb2NhbGUoIkxDX0FMTCIsICJFbmdsaXNoIikNCiMgU3lzLnNldGxvY2FsZSgiTENfVElNRSIsICJFbmdsaXNoIikNCmBgYA0KDQoNCg0K